/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						 adv_object_type.h

	$Header: /heroes4/adv_object_type.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( ADV_OBJECT_TYPE_H_INCLUDED )
#define ADV_OBJECT_TYPE_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>
// ------------------------------------------------------------------------------
// t_adv_object_type enum
// ------------------------------------------------------------------------------

enum t_adv_object_type
{
	k_adv_object_abandoned_mine,
	k_adv_object_abbey,             // Pseudo-type for the life town building; doesn't appear on map
	k_adv_object_academy,
	k_adv_object_arena,
	k_adv_object_artifact,
	k_adv_object_artifact_pile,     // Never created by map editor; left over from battle
	k_adv_object_blacksmith,
	k_adv_object_blattner_stone,
	k_adv_object_border_gate,
	k_adv_object_border_guard,
	k_adv_object_bridge,
	k_adv_object_buoy,
	k_adv_object_campfire,
	k_adv_object_carryover_hero,
	k_adv_object_cartographer,
	k_adv_object_chain,
	k_adv_object_clover_field,
	k_adv_object_corpse,
	k_adv_object_creature_bank,
	k_adv_object_creature_dwelling,
	k_adv_object_decorative,
	k_adv_object_deletion_marker,
	k_adv_object_dolphin_school,
	k_adv_object_event_trigger,
	k_adv_object_exhausted_mine,
	k_adv_object_eye_of_the_magi,
	k_adv_object_faerie_ring,
	k_adv_object_ferry,
	k_adv_object_flotsam,
	k_adv_object_fountain,
	k_adv_object_garrison,
	k_adv_object_gateway,
	k_adv_object_hut_of_the_magi,
	k_adv_object_idol_of_fortune,
	k_adv_object_kelp_beds,
	k_adv_object_keymaster_tent,
	k_adv_object_lighthouse,
	k_adv_object_magic_gem,
	k_adv_object_mana_recharger,
	k_adv_object_material_pile,
	k_adv_object_medicine_wagon,
	k_adv_object_mercenary_camp,
	k_adv_object_mine,
	k_adv_object_movement_booster,
	k_adv_object_nothing,
	k_adv_object_obelisk,
	k_adv_object_obelisk_marker,
	k_adv_object_ocean_bottle,
	k_adv_object_outpost,
	k_adv_object_oyster,
	k_adv_object_pandoras_box,
	k_adv_object_path_arrow,
	k_adv_object_pathfinder,
	k_adv_object_port,
	k_adv_object_prison,
	k_adv_object_quest_gate,
	k_adv_object_quest_guard,
	k_adv_object_rainbow,
	k_adv_object_random_artifact,
	k_adv_object_random_creature_dwelling,
	k_adv_object_random_material_pile,
	k_adv_object_random_monster,
	k_adv_object_random_potion,
	k_adv_object_random_random_monster,
	k_adv_object_random_shrine,
	k_adv_object_random_staff,
	k_adv_object_random_teacher,
	k_adv_object_random_temple,
	k_adv_object_random_tome,
	k_adv_object_random_town,
	k_adv_object_random_weekly_material_generator,
	k_adv_object_sacred_grove,
	k_adv_object_sanctuary,
	k_adv_object_school,
	k_adv_object_seers_hut,
	k_adv_object_selection_ring,
	k_adv_object_ship,
	k_adv_object_shipwreck_survivor,
	k_adv_object_shipyard,
	k_adv_object_shrine,
	k_adv_object_sign,
	k_adv_object_sphinx,
	k_adv_object_stagecoach,
	k_adv_object_subterranean_gate,
	k_adv_object_system,
	k_adv_object_tavern,
	k_adv_object_teacher,
	k_adv_object_teleporter_entrance,
	k_adv_object_teleporter_exit,
	k_adv_object_temple,
	k_adv_object_toll_gate,
	k_adv_object_tower,
	k_adv_object_town,
	k_adv_object_trading_post,
	k_adv_object_training_grounds,
	k_adv_object_treasure,
	k_adv_object_tree_of_knowledge,
	k_adv_object_vein,
	k_adv_object_victory_flag,
	k_adv_object_weekly_material_generator,
	k_adv_object_windmill,
	k_adv_object_whirlpool,

	k_adv_object_type_count,
};

// ------------------------------------------------------------------------------
// t_artifact_pile_type enum
// ------------------------------------------------------------------------------
enum t_artifact_pile_type
{
	k_artifact_pile_land,
	k_artifact_pile_ocean,

	k_artifact_pile_type_count
};


// ------------------------------------------------------------------------------
// t_bridge enum
// ------------------------------------------------------------------------------
enum t_bridge_type
{
	k_bridge_span,
	k_bridge_ramp,

	k_bridge_type_count
};


// ------------------------------------------------------------------------------
// t_magic_gem_type enum
// ------------------------------------------------------------------------------

enum t_magic_gem_type
{
	k_gem_opal_of_magic,
	k_gem_sapphire_of_health,
	k_gem_ruby_of_offense,
	k_gem_emerald_of_speed,

	k_magic_gem_type_count,
};

// ------------------------------------------------------------------------------
// t_fountain_type enum
// ------------------------------------------------------------------------------

enum t_fountain_type
{
	k_fountain_of_strength,
	k_fountain_spring_of_speed,
	k_fountain_of_vigor,
	k_fountain_pool_of_power,
	k_fountain_of_fortune,
	k_fountain_of_youth,

	k_fountain_type_count,
};

// ------------------------------------------------------------------------------
// t_school_type enum
// ------------------------------------------------------------------------------

enum t_school_type
{
	k_school_magic_university,
	k_school_war_college,
	k_school_of_magic,
	k_school_of_war,
	k_school_library,
	k_school_war_institute,
	k_school_witchs_hut,
	k_school_beastmasters_hut,

	k_school_type_count,
};

// ------------------------------------------------------------------------------
// t_movement_booster_type enum
// ------------------------------------------------------------------------------

enum t_movement_booster_type
{
	k_movement_stables,
	k_movement_oasis,
	k_movement_watering_hole,
	k_movement_rally_flag,

	k_movement_booster_type_count,
};

// ------------------------------------------------------------------------------
// t_pathfinder_type enum
// ------------------------------------------------------------------------------

enum t_pathfinder_type
{
	k_pathfinder_brimstone_lodge,
	k_pathfinder_winter_lodge,
	k_pathfinder_desert_hut,
	k_pathfinder_barbarians_camp,
	k_pathfinder_wet_log_inn,

	k_pathfinder_type_count,
};

// ------------------------------------------------------------------------------
// t_mana_recharger_type enum
// ------------------------------------------------------------------------------

enum t_mana_recharger_type
{
	k_recharger_magic_well,
	k_recharger_fountain_of_magic,
	k_recharger_magicians_pool,
	k_recharger_scarlet_swan_lake,
	k_recharger_magic_spring,
	k_recharger_mana_vortex,

	k_mana_recharger_type_count,
};

// ------------------------------------------------------------------------------
// t_tower_type enum
// ------------------------------------------------------------------------------

enum t_tower_type
{
	k_tower_redwood_tree,
	k_tower_tower,
	k_tower_ice_spire,

	k_tower_type_count,
};

// ------------------------------------------------------------------------------
// t_border_guard_color enum
// ------------------------------------------------------------------------------

enum t_border_guard_color
{
	k_border_guard_teal,
	k_border_guard_red,
	k_border_guard_blue,
	k_border_guard_green,
	k_border_guard_yellow,
	k_border_guard_purple,

	k_border_guard_color_count,
};

// ------------------------------------------------------------------------------
// t_obelisk_color enum
// ------------------------------------------------------------------------------

enum t_obelisk_color
{
	k_obelisk_gold,
	k_obelisk_red,
	k_obelisk_blue,
	k_obelisk_white,
	k_obelisk_black,
	k_obelisk_green,
	k_obelisk_purple,
	//k_obelisk_pink, <--- ???
	k_obelisk_orange,
	k_obelisk_yellow,
	k_obelisk_brown,
	k_obelisk_silver,
	k_obelisk_bronze,

	k_obelisk_color_count,
};

// ------------------------------------------------------------------------------
// t_gatewate_type enum
// ------------------------------------------------------------------------------

enum t_gateway_type
{
	k_gateway_1,
	k_gateway_2,
	k_gateway_3,
	k_gateway_4,
	k_gateway_5,
	k_gateway_6,

	k_gateway_type_count,
};

// ------------------------------------------------------------------------------
// t_hut_of_the_magi_color enum
// ------------------------------------------------------------------------------

enum t_hut_of_the_magi_color
{
	k_hut_blue,
	k_hut_green,
	k_hut_orange,
	k_hut_purple,
	k_hut_red,
	k_hut_teal,

	k_hut_of_the_magi_color_count,
};

// ------------------------------------------------------------------------------
// t_treasure_type enum
// ------------------------------------------------------------------------------

enum t_treasure_type
{
	k_treasure_travelers_backpack,
	k_treasure_mages_chest,
	k_treasure_treasure_chest,
	k_treasure_sea_chest,

	k_treasure_type_count,
};

// ------------------------------------------------------------------------------
// t_seers_hut_type enum
// ------------------------------------------------------------------------------

enum t_seers_hut_type
{
	k_seers_hut_boat,
	k_seers_hut_desolation,
	k_seers_hut_earthly,
	k_seers_hut_farmhouse,
	k_seers_hut_house_boat,
	k_seers_hut_igloo,
	k_seers_hut_nomadic,
	k_seers_hut_normal_house,
	k_seers_hut_obsidian,
	k_seers_hut_sub_bone,
	k_seers_hut_sub_mushroom,
	k_seers_hut_cave,
	k_seers_hut_dilapidated_house,
	k_seers_hut_mansion,
	k_seers_hut_point_of_power,
	k_seers_hut_decrepit_tower,
	k_seers_hut_sun_temple,
	k_seers_hut_evil_temple,
	k_seers_hut_graveyard,
	k_seers_hut_shop,

	k_seers_hut_type_count,
};

// ------------------------------------------------------------------------------
// t_chain_type enum
// ------------------------------------------------------------------------------

enum t_chain_type
{
	k_chain_link,
	k_chain_post,

	k_chain_type_count,
};

// ------------------------------------------------------------------------------
// t_two_way_facing_enum
// ------------------------------------------------------------------------------

enum t_two_way_facing
{
	k_two_way_left,
	k_two_way_right,

	k_two_way_facing_count,
};

// ------------------------------------------------------------------------------
// t_four_way_facing enum
// ------------------------------------------------------------------------------

enum t_four_way_facing
{
	k_four_way_up_left,
	k_four_way_up_right,
	k_four_way_down_left,
	k_four_way_down_right,

	k_four_way_facing_count,
};

// ------------------------------------------------------------------------------
// t_subterranean_gate_type enum
// ------------------------------------------------------------------------------

enum t_subterranean_gate_type
{
	k_subterranean_gate_down,
	k_subterranean_gate_up,

	k_subterranean_gate_type_count,
};

// ------------------------------------------------------------------------------
// t_system_adv_object_type enum
// ------------------------------------------------------------------------------

enum t_system_adv_object_type
{
	k_system_adv_object_wall,

	k_system_adv_object_type_count,
};

t_adv_object_type get_adv_object_type( std::string const& keyword );

#endif // !defined( ADV_OBJECT_TYPE_H_INCLUDED )
